package cn.jit.ssm.beans.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class JitModuleExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public JitModuleExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andModuleIdIsNull() {
            addCriterion("moduleId is null");
            return (Criteria) this;
        }

        public Criteria andModuleIdIsNotNull() {
            addCriterion("moduleId is not null");
            return (Criteria) this;
        }

        public Criteria andModuleIdEqualTo(Long value) {
            addCriterion("moduleId =", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdNotEqualTo(Long value) {
            addCriterion("moduleId <>", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdGreaterThan(Long value) {
            addCriterion("moduleId >", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdGreaterThanOrEqualTo(Long value) {
            addCriterion("moduleId >=", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdLessThan(Long value) {
            addCriterion("moduleId <", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdLessThanOrEqualTo(Long value) {
            addCriterion("moduleId <=", value, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdIn(List<Long> values) {
            addCriterion("moduleId in", values, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdNotIn(List<Long> values) {
            addCriterion("moduleId not in", values, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdBetween(Long value1, Long value2) {
            addCriterion("moduleId between", value1, value2, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleIdNotBetween(Long value1, Long value2) {
            addCriterion("moduleId not between", value1, value2, "moduleId");
            return (Criteria) this;
        }

        public Criteria andModuleNameIsNull() {
            addCriterion("moduleName is null");
            return (Criteria) this;
        }

        public Criteria andModuleNameIsNotNull() {
            addCriterion("moduleName is not null");
            return (Criteria) this;
        }

        public Criteria andModuleNameEqualTo(String value) {
            addCriterion("moduleName =", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotEqualTo(String value) {
            addCriterion("moduleName <>", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameGreaterThan(String value) {
            addCriterion("moduleName >", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameGreaterThanOrEqualTo(String value) {
            addCriterion("moduleName >=", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameLessThan(String value) {
            addCriterion("moduleName <", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameLessThanOrEqualTo(String value) {
            addCriterion("moduleName <=", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameLike(String value) {
            addCriterion("moduleName like", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotLike(String value) {
            addCriterion("moduleName not like", value, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameIn(List<String> values) {
            addCriterion("moduleName in", values, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotIn(List<String> values) {
            addCriterion("moduleName not in", values, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameBetween(String value1, String value2) {
            addCriterion("moduleName between", value1, value2, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleNameNotBetween(String value1, String value2) {
            addCriterion("moduleName not between", value1, value2, "moduleName");
            return (Criteria) this;
        }

        public Criteria andModuleCodeIsNull() {
            addCriterion("moduleCode is null");
            return (Criteria) this;
        }

        public Criteria andModuleCodeIsNotNull() {
            addCriterion("moduleCode is not null");
            return (Criteria) this;
        }

        public Criteria andModuleCodeEqualTo(String value) {
            addCriterion("moduleCode =", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeNotEqualTo(String value) {
            addCriterion("moduleCode <>", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeGreaterThan(String value) {
            addCriterion("moduleCode >", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeGreaterThanOrEqualTo(String value) {
            addCriterion("moduleCode >=", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeLessThan(String value) {
            addCriterion("moduleCode <", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeLessThanOrEqualTo(String value) {
            addCriterion("moduleCode <=", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeLike(String value) {
            addCriterion("moduleCode like", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeNotLike(String value) {
            addCriterion("moduleCode not like", value, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeIn(List<String> values) {
            addCriterion("moduleCode in", values, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeNotIn(List<String> values) {
            addCriterion("moduleCode not in", values, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeBetween(String value1, String value2) {
            addCriterion("moduleCode between", value1, value2, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleCodeNotBetween(String value1, String value2) {
            addCriterion("moduleCode not between", value1, value2, "moduleCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeIsNull() {
            addCriterion("moduleSuperCode is null");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeIsNotNull() {
            addCriterion("moduleSuperCode is not null");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeEqualTo(String value) {
            addCriterion("moduleSuperCode =", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeNotEqualTo(String value) {
            addCriterion("moduleSuperCode <>", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeGreaterThan(String value) {
            addCriterion("moduleSuperCode >", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeGreaterThanOrEqualTo(String value) {
            addCriterion("moduleSuperCode >=", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeLessThan(String value) {
            addCriterion("moduleSuperCode <", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeLessThanOrEqualTo(String value) {
            addCriterion("moduleSuperCode <=", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeLike(String value) {
            addCriterion("moduleSuperCode like", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeNotLike(String value) {
            addCriterion("moduleSuperCode not like", value, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeIn(List<String> values) {
            addCriterion("moduleSuperCode in", values, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeNotIn(List<String> values) {
            addCriterion("moduleSuperCode not in", values, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeBetween(String value1, String value2) {
            addCriterion("moduleSuperCode between", value1, value2, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModuleSuperCodeNotBetween(String value1, String value2) {
            addCriterion("moduleSuperCode not between", value1, value2, "moduleSuperCode");
            return (Criteria) this;
        }

        public Criteria andModulePageIsNull() {
            addCriterion("modulePage is null");
            return (Criteria) this;
        }

        public Criteria andModulePageIsNotNull() {
            addCriterion("modulePage is not null");
            return (Criteria) this;
        }

        public Criteria andModulePageEqualTo(String value) {
            addCriterion("modulePage =", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageNotEqualTo(String value) {
            addCriterion("modulePage <>", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageGreaterThan(String value) {
            addCriterion("modulePage >", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageGreaterThanOrEqualTo(String value) {
            addCriterion("modulePage >=", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageLessThan(String value) {
            addCriterion("modulePage <", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageLessThanOrEqualTo(String value) {
            addCriterion("modulePage <=", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageLike(String value) {
            addCriterion("modulePage like", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageNotLike(String value) {
            addCriterion("modulePage not like", value, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageIn(List<String> values) {
            addCriterion("modulePage in", values, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageNotIn(List<String> values) {
            addCriterion("modulePage not in", values, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageBetween(String value1, String value2) {
            addCriterion("modulePage between", value1, value2, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModulePageNotBetween(String value1, String value2) {
            addCriterion("modulePage not between", value1, value2, "modulePage");
            return (Criteria) this;
        }

        public Criteria andModuleLevelIsNull() {
            addCriterion("moduleLevel is null");
            return (Criteria) this;
        }

        public Criteria andModuleLevelIsNotNull() {
            addCriterion("moduleLevel is not null");
            return (Criteria) this;
        }

        public Criteria andModuleLevelEqualTo(Integer value) {
            addCriterion("moduleLevel =", value, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelNotEqualTo(Integer value) {
            addCriterion("moduleLevel <>", value, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelGreaterThan(Integer value) {
            addCriterion("moduleLevel >", value, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelGreaterThanOrEqualTo(Integer value) {
            addCriterion("moduleLevel >=", value, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelLessThan(Integer value) {
            addCriterion("moduleLevel <", value, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelLessThanOrEqualTo(Integer value) {
            addCriterion("moduleLevel <=", value, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelIn(List<Integer> values) {
            addCriterion("moduleLevel in", values, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelNotIn(List<Integer> values) {
            addCriterion("moduleLevel not in", values, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelBetween(Integer value1, Integer value2) {
            addCriterion("moduleLevel between", value1, value2, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andModuleLevelNotBetween(Integer value1, Integer value2) {
            addCriterion("moduleLevel not between", value1, value2, "moduleLevel");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeIsNull() {
            addCriterion("lastModifyTime is null");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeIsNotNull() {
            addCriterion("lastModifyTime is not null");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeEqualTo(Date value) {
            addCriterion("lastModifyTime =", value, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeNotEqualTo(Date value) {
            addCriterion("lastModifyTime <>", value, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeGreaterThan(Date value) {
            addCriterion("lastModifyTime >", value, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("lastModifyTime >=", value, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeLessThan(Date value) {
            addCriterion("lastModifyTime <", value, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(Date value) {
            addCriterion("lastModifyTime <=", value, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeIn(List<Date> values) {
            addCriterion("lastModifyTime in", values, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeNotIn(List<Date> values) {
            addCriterion("lastModifyTime not in", values, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeBetween(Date value1, Date value2) {
            addCriterion("lastModifyTime between", value1, value2, "lastModifyTime");
            return (Criteria) this;
        }

        public Criteria andLastModifyTimeNotBetween(Date value1, Date value2) {
            addCriterion("lastModifyTime not between", value1, value2, "lastModifyTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}